<?php

define('DS', '/');

$hostname =  rtrim(`hostname`);
/*
//echo dirname(__FILE__);die;
if('cenys-ale' == $hostname) {
    define('SITE_PATH', 'D:'.DS.'wamp'.DS.'www'.DS.'affiche');
    $uploaddir = 'D:'.DS.'wamp'.DS.'www'.DS.'affiche'.DS.'app'.DS.'webroot'.DS.'img';
}elseif('cenys' == substr($hostname, 0, 5)) {
    $uploaddir = DS.'home'.DS.'affiche'.DS.'domains'.DS.'affichepublicidad.com'.DS.'public_html'.DS.'app'.DS.'webroot'.DS.'img';
}else{
    $uploaddir = DS.'home'.DS.'affiche'.DS.'public_html'.DS.'app'.DS.'webroot'.DS.'img';
}
*/

//$uploaddir = '/home/affiche/domains/affichepublicidad.com/public_html/'.'app'.DS.'webroot'.DS.'img';
//$uploaddir = DS.'home'.DS.'affiche'.DS.'domains'.DS.'affichepublicidad.com'.DS.'public_html'.DS.''.'app'.DS.'webroot'.DS.'img';

//define('SITE_PATH', 'D:'.DS.'wamp'.DS.'www'.DS.'affiche');
$uploaddir = 'C:'.DS.'xampp'.DS.'htdocs'.DS.'cerrajeria'.DS.'app'.DS.'webroot'.DS.'img';

$now = date('Y-m-d-H-i-s');
$nombre = $now.basename($_FILES['userfile']['name']);


//redimensiono la imagen al tamaño grande de 790 x 527 px
//$destino = $uploaddir.DS.'temp'.DS.'redim'.DS.basename($_FILES['userfile']['name']);
//$destinoB = $uploaddir.DS.'temp'.DS.'real'.DS.basename($_FILES['userfile']['name']);

/*
//$destino = $uploaddir.DS.'temp'.DS.'redim'.DS.$nombre;//linea original
$destino = $uploaddir.DS.'temp'.DS.'redim';
//$destinoB = $uploaddir.DS.'temp'.DS.'real'.DS.$nombre;//linea original
$destinoB = $uploaddir.DS.'temp'.DS.'real';
 * aca la batiste putito
 * 
*/
$destino = $uploaddir.DS.'temp'.DS.'redim'.DS.$nombre;
$destinoB = $uploaddir.DS.'temp'.DS.'real'.DS.$nombre;

$bandera = true;

$file_url = '/img/temp/redim/'.$nombre;

$dato['file'] = $_FILES['userfile'];
$datos = getimagesize($dato['file']['tmp_name']);

$error_tamanio = false;

if($datos != null) {
    //creo una imagen con la misma extension, y la guardo en $destinoB que tiene la direccion de la foto original
    if($datos[2]==1) {
        $img = @imagecreatefromgif($dato['file']['tmp_name']);
        imagegif($img , $destinoB);
    }
    if($datos[2]==2) {
        $img = @imagecreatefromjpeg($dato['file']['tmp_name']);
        imagejpeg($img, $destinoB, 100);
    }
    if($datos[2]==3) {
        $img = @imagecreatefrompng($dato['file']['tmp_name']);
        imagepng($img , $destinoB,9);
    }

    //me fijo si la imagen tiene le tamaño mínimo solicitado (es el mínimo del crop)
    //en este caso seria de 150 x 100
    //if($datos[1] < 100 || $datos[0] < 150) {
    if($datos[1] < 285 || $datos[0] < 285) {
        $bandera = false;
        $error_tamanio = true;
    }else {
        //si la imagen tiene el tamaño mínimo requerido
        if($img != null) {
            $ancho = 790;
            $alto = 527;

            $prop_final = $alto/$ancho;

            $prop_inicial = $datos[1]/$datos[0];

            //primero controlo el caso en que la imagen sea cuadrada
            if($prop_inicial == 1) {

                //si la medida del lado del cuadrado es mas grande que 527, tengo que redimensionar
                if($datos[1]>$alto) {
                    $bandera = redim_alto($datos, $img, $destino);
                }else {
                    //debe mantener las medidas actuales
                    $bandera = copy($dato['file']['tmp_name'] , $destino);
                }
            }else {
                //si la imagen no es cuadrada, me fijo las proporciones que tiene

                if($prop_inicial > $prop_final) {
                    //le seteo el alto a 527 y redimensiono por el ancho, primero pruebo achicar al alto y despues al ancho
                    if ($datos[1] > $alto) {
                        $bandera = redim_alto($datos, $img, $destino);
                    }
                    //sino le seteo el ancho a 790 y redimensiono por el alto
                    elseif ($datos[0] > $ancho) {
                        $bandera = redim_ancho($datos, $img, $destino);
                    }
                    else {
                        $bandera = copy($dato['file']['tmp_name'] , $destino);
                    }

                }else {
                    //le seteo el ancho a 790 y redimensiono por el alto, primero pruebo achicar al ancho y despues al alto
                    if ($datos[0] > $ancho) {
                        $bandera = redim_ancho($datos, $img, $destino);
                    }
                    //sino le seteo el alto a 527 y redimensiono por el ancho
                    elseif ($datos[1] > $alto) {
                        $bandera = redim_alto($datos, $img, $destino);
                    }
                    else {
                        $bandera = copy($dato['file']['tmp_name'] , $destino);
                    }
                }
            }
        }
        else {
            $bandera = false;
        }
    }

}
else {
    $bandera = false;
}


if($bandera) {

    //ahora le doy permisos a los archivos
    chmod($destino, 0777);
    chmod($destinoB, 0777);

    echo $file_url;
} else {
    // WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
    // Otherwise onSubmit event will not be fired
    if($error_tamanio){
        echo 'tamanio';
    }else{
        echo "error";
    }
}

unlink($destinoB);

function redim_ancho($datos, $img, $destino) {
    $ancho = 790;
    $relacion = $datos[0] / $ancho;
    $alto = $datos[1] / $relacion;

    $auxiliar = imagecreatetruecolor($ancho,$alto);

    //copia y reescala una imagen
    imagecopyresampled($auxiliar, $img, 0, 0, 0, 0, $ancho, $alto, $datos[0], $datos[1]);
    if($datos[2]==1) {
        $bandera = imagegif($auxiliar,$destino);
    }
    if($datos[2]==2) {
        $bandera = imagejpeg($auxiliar,$destino, 100);
    }
    if($datos[2]==3) {
        $bandera = imagepng($auxiliar,$destino,9);
    }
    imagedestroy($auxiliar);

    return $bandera;
}

function redim_alto($datos, $img, $destino) {
    $alto = 527;
    $relacion = $datos[1] / $alto;
    $ancho = $datos[0] / $relacion;
    $auxiliar = imagecreatetruecolor($ancho,$alto);
    imagecopyresampled($auxiliar, $img, 0, 0, 0, 0, $ancho, $alto, $datos[0], $datos[1]);
    if($datos[2]==1) {
        $bandera = imagegif($auxiliar,$destino);
    }
    if($datos[2]==2) {
        $bandera = imagejpeg($auxiliar,$destino, 100);
    }
    if($datos[2]==3) {
        $bandera = imagepng($auxiliar,$destino,9);
    }
    imagedestroy($auxiliar);

    return $bandera;
}

?>
